package chai.ning.wrapper1;

/**
 * 1、Byte 、Short 、Integer 、Long 、Float 、Double 都有一个接受其相应的基本类型的 valueOf( xxx value )方法
 * 2、Byte 、Short 、Integer 、Long 、Float 、Double 都是 java.lang.Number 类的子类
 */
public class NumberTest1 {

	public static void main(String[] args) {
		
		Number x = null ; // 引用变量 x 的编译时类型 Number
		
		// Number x = new Number(); // Cannot instantiate the type Number
		
		byte b = 100 ;
		// Number x = new Byte( b ); // The constructor Byte(byte) is deprecated since version 9
		
		// 调用Byte类中的类方法valueOf将byte类型的数值包装到一个Byte对象中
		x = Byte.valueOf( b );
		System.out.println( x );
		System.out.println( x.getClass() ); // 运行时类型
		
		short s = 9527 ;
		x = Short.valueOf( s );
		System.out.println( x );
		System.out.println( x.getClass() );
		
		int i = 10086 ;
		x = Integer.valueOf( i );
		System.out.println( x );
		System.out.println( x.getClass() );
		
		long o = 1L ;
		x = Long.valueOf( o );
		System.out.println( x );
		System.out.println( x.getClass() );
		
		float f = 6.66F ;
		x = Float.valueOf( f );
		System.out.println( x );
		System.out.println( x.getClass() );
		
		double d = 3.14 ;
		x = Double.valueOf( d );
		System.out.println( x );
		System.out.println( x.getClass() );
		
		System.out.println( "- - - - - - - - - - - - - - - - - - - -" );
		
		double u = 129.1234567890 ;
		x = Double.valueOf( u );
		System.out.println( x.byteValue() );
		System.out.println( x.shortValue() );
		System.out.println( x.intValue() );
		System.out.println( x.longValue() );
		System.out.println( x.floatValue() );
		System.out.println( x.doubleValue() );

	}

}
